package com.university.evaluation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.university.evaluation.common.ResponseResult;
import com.university.evaluation.domain.dto.RoleDTO;
import com.university.evaluation.entity.Role;

import java.util.List;
import java.util.Map;

public interface RoleService extends IService<Role> {

    // 根据状态获取角色列表
    List<Role> getRolesByStatus(Integer status);

    // 批量删除角色
    boolean batchDeleteRoles(List<Long> roleIds);

    // 检查角色是否被使用
    boolean isRoleUsed(Long roleId);

    // 根据角色键获取角色
    Role getRoleByKey(String roleKey);

    // 获取所有角色列表
    ResponseResult<?> getAllRoles();

    // 根据ID获取角色详情
    ResponseResult<?> getRoleById(Long roleId);

    // 创建新角色
    ResponseResult<?> createRole(RoleDTO roleDTO);

    // 更新角色信息
    ResponseResult<?> updateRole(Long roleId, RoleDTO roleDTO);

    // 删除角色
    ResponseResult<?> deleteRole(Long roleId);

    // 获取角色权限列表
    ResponseResult<?> getRolePermissions(Long roleId);

    // 更新角色权限
    ResponseResult<?> updateRolePermissions(Long roleId, Long[] permissionIds);

    // 获取角色分页列表
    ResponseResult<?> getRolePageList(Map<String, Object> params);

    // 获取用户角色列表
    ResponseResult<?> getUserRoles(Long userId);

    // 更新用户角色
    ResponseResult<?> updateUserRoles(Long userId, Long[] roleIds);

}